In keeping with its heritage as a "low-level" (but extensible) language suited for writing operating systems, C provides numerous operators for bit manipulation. Operands for these operators must be integral types. For this purpose, integral values may be assigned using octal constants, which contain a leading zero:
int n = 077; /* decimal value 63 */
Briefly, C's bit manipulation operators are: bitwise negation (~); left shift (<<) and right shift (>>); bitwise AND (&), OR (|), and XOR (^); shorthand shift-assignment (<<= and >>=); shorthand AND-assignment (&=), OR-assignment (|=), and XOR-assignment (^=).